<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Language" content="ja" />
<title>「プロフィールページ」インストールマニュアル</title>
<!-- JS -->
<!-- <meta http-equiv="Content-Script-Type" content="javascript" /> -->
<!-- <script type="text/javascript" src="js/jquery.js"></script> -->
<!-- CSS -->
<meta http-equiv="Content-Style-Type" content="text/css" />
<link rel="stylesheet" type="text/css" href="css/basic.css" />
</head>
<body>

<div class="wrapper">

<div class="header">

<h1>「プロフィールページ」<br />
インストールマニュアル</h1>

</div><!-- end of header -->

<br class="pagebreak" />

<div class="content">

<h2>目次</h2>

<ol class="lidecimal">
  <li><a href="#archive">内容物の確認</a></li>
  <li><a href="#environment">環境設定</a></li>
  <li><a href="#archive">アーカイブの展開</a></li>
  <li><a href="#php">PHPスクリプト設定</a></li>
  <li><a href="#database">データベース設定</a></li>
  <li><a href="#shellscript">シェルスクリプト設定</a></li>
  <li><a href="#start">起動</a></li>
</ol>


<br class="pagebreak" />


<h2><a name="archive">０・内容物の確認</a></h2>

<p>
展開したファイルの内容物は以下になります。<br />
展開方法については２で説明します。
</p>

<ul>
  <li>profile.zip</li>
  <ul>
    <li>source/</li>
    <ul>
      <li>profile/* - WEBアプリケーション一式</li>
    </ul>
  </ul>
  <ul>
    <li>db/</li>
    <ul>
      <li>profile.sql - データベース - VIEW作成用スクリプト</li>
    </ul>
  </ul>
  <ul>
    <li>sh/</li>
    <ul>
      <li>profile.sh - アクセスカウンタ表示用スクリプト</li>
    </ul>
  </ul>
  <ul>
    <li>document/</li>
    <ul>
      <li>document.html - このドキュメント</li>
    </ul>
  </ul>
</ul>


<br class="pagebreak" />


<h2><a name="environment">１・環境設定</a></h2>

<h3>推奨環境</h3>

<h4>プロフィールページ設置サーバ</h4>

<ul>
  <li>CentOS 4 または Red Hat Enterprise Linux ES 4 以上</li>
  <li>Apache 2.0.52 以上</li>
  <li>PHP 4.3.9 以上</li>
  <li>Postgresql 7.4.19 以上</li>
</ul>


<br class="pagebreak" />


<h2><a name="archive">２・アーカイブの展開</a></h2>

<p>１・profile.zip を任意の場所で展開します。</p>

<samp># unzip profile.zip</samp>

<p>２・profile.zip に含まれる profile ディレクトリ以下をドキュメントルート（＊）に移動します。</p>

<p>（＊）ドキュメントルートとは http サーバが参照する 一番上のディレクトリのことです。<br />
Linux ではドキュメントルートは通常「/var/www/html」です。</p>

<pre>
<samp>
# cd source
# mv profile /var/www/html
</samp>
</pre>

<p class="announce"><strong>注意！</strong>.（ドット）ファイルは「cp」でコピーされない事があります。「mv」で移動してください。</p>


<br class="pagebreak" />


<h2><a name="php">３．PHPスクリプト設定</a></h2>

<p>ドキュメントルートに設置したWEBアプリケーションを設定します。</p>

<p>データベースの接続先を設定します。<br />
任意のエディタで編集してください。</p>

<samp># vim /var/www/html/profile/app/config/database.php</samp>

<p>DSPACE<br />
92行目　以下の「host」「login」「database」を設定してください。<br />
以下は九州大学の場合です。</p>

<pre>
<code>
var $dspace = array(
                    'driver' =&gt; 'postgres',
                    'persistent' =&gt; true,
                    'host' =&gt; 'qir.kyushu-u.ac.jp',
                    'port' =&gt; '5432',
                    'login' =&gt; 'dspace',
                    'password' =&gt; '',
                    'database' =&gt; 'dspace',
                    'prefix' =&gt; '',
              );
</code>
</pre>


<br class="pagebreak" />


<h2><a name="database">４．データベース設定</a></h2>


<p>「プロフィールページ」は「DSPACE」のデータベースへアクセスします。<br />
その為「DSPACE」のデータベース「Postgres」の設定を変更しアクセスを許可します。</p>

<p>
１・「DSPACE」のデータベース設定を変更します。<br />
データベースの接続許可を設定します。<br />
任意のエディタで編集してください。<br />
</p>

<pre>
<samp>
# cd /opt/dsk/system/pgsql/data
# vim pg_hba.conf
</samp>
</pre>

<p>以下は九州大学の場合です。</p>

<pre>
<samp>
# TYPE DATABASE USER CIDR-ADDRESS METHOD
host dspace dspace 133.5.128.3/32 trust
</samp>
</pre>

<p>２・データベースにビューを作成します。<br />
「プロフィールページ」では検索する為に「ビュー」を参照します。<br />
「ビュー」とは1つ以上の表（または他のビュー）から任意のデータを選択し、それらをカスタマイズして表したものです。<br />
（出典: フリー百科事典『ウィキペディア（Wikipedia）』）</p>

<p>・ビューの作成<br />
・「DSPACE」サーバにてPostgres用SQLファイルを実行します。</p>

<pre>
<samp>
# su dspace
# psql -f profile.sql
</samp>
</pre>

<p>・「ビュー」ファイルが作成されたか確認します。</p>

<pre>
<samp>
# psql
dspace=# \dv
</samp>
</pre>

<p>以下４つのビューが作成されているのが確認できたら完了です。</p>

<ul>
<li>leda_profile_authors</li>
<li>leda_profile_creators</li>
<li>leda_profile_transcripts</li>
<li>leda_resolvers</li>
</ul>


<br class="pagebreak" />


<h2><a name="shellscript">５．シェルスクリプト設定</a></h2>


<p>「プロフィールページ」は「DSPACE」のログからアクセスログを表示させます。<br />
その為「CRON」を設定し「RSYNC」でログを「DSPACE」から取得します。</p>

<p>「RSYNC」で「DSPACE」サーバへ接続します。<br />
今回は「SSH」でデータを取得するため「公開鍵認証」で「RSYNC」を行います。<br />
「公開鍵認証」の方法については別サイトを参照してください。</p>


<p>１・「RSYNC」で「DSPACE」サーバからログを取得するスクリプトを作成します。<br />
ユーザのホームディレクトリに作成します。</p>

<pre>
<samp>
# cd /root
# touch backup_dspace_access_log.sh
</samp>
</pre>

<p>任意のエディタで編集してください。</p>

<samp># vim backup_dspace_access_log.sh</samp>

<p>以下の「user」「server」を設定してください。<br />
以下は九州大学の場合です。</p>

<pre>
<code>
#!/bin/sh
user="dspace"
server="qir.kyushu-u.ac.jp"
backupdate=`date +"%Y-%-m-%-d"`
from="/opt/dsk/system/dspace/log/dspace-log-general-$backupdate.dat"
to="/opt/dsk/system/dspace/log/"
rsync -auv --delete $user@$server:$from $to
</code>
</pre>

<p>２・「TO」に設定したディレクトリを作成します。<br />
書き込みが出来るよう適切な権限を与えてください。<br />
任意の場所で問題ありませんが、「DSPACE」のログファイルのある場所と合わせます。</p>

<pre>
<samp>
# cd /opt
# mkdir dsk
# cd dsk...
</samp>
</pre>

<p>３・「/opt/dsk/system/dspace/log/」を作成したら権限を設定します。<br />
「RSYNC」実行時に書き込みが行えるよう設定してください。</p>

<samp># chmod -R 755 /opt/dsk/system/dspace/log/</samp>

<p>４・シェルのテストを行います。<br />
実行して「/opt/dsk/system/dspace/log/」に<br />
ファイルが作成されているか確認してください。</p>

<samp># /root/backup_dspace_access_log.sh</samp>

<p>５・「CRON」の設定をします。<br />
「DSPACE」では日毎にアクセスログが作成されています。<br />
「プロフィールページ」にてアクセスログを表示するために「CRON」で日毎に取得するよう設定します。</p>

<pre>
<samp># crontab -e</samp>
<code>45 0 * * * /root/backup_dspace_access_log.sh &gt;&gt; /root/log/rsync.log</code>
</pre>

<p>上記の設定では毎日０時４５分に１で設定したスクリプトを実行します。<br />
また「RSYNC」の結果をログとして「/root/log/rsync.log」に残すよう設定します。</p>


<br class="pagebreak" />


<h2><a name="start">６・起動</a></h2>

<p>WEBアプリケーションを起動させます。<br />
以下のサービス（※）が立ち上げて終了です。<br />
（※）Linuxの場合</p>

<pre>
<samp>
# service httpd start
# service postgresql start
</samp>
</pre>

</div><!-- end of content -->

<div class="footer">

</div><!-- end of footer -->

</div><!-- end of wrapper -->

</body>
</html>